from functools import lru_cache

# 基础用法
@lru_cache(maxsize=128)
def fibonacci(n):
    """计算斐波那契数列"""
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))  # 输出: 55
print(fibonacci.cache_info())  # 查看缓存信息

# 无参数限制的缓存
@lru_cache(maxsize=None)
def expensive_computation(n):
    """模拟耗时计算"""
    import time
    time.sleep(0.1)  # 模拟计算时间
    return n ** 2

# 第一次调用会慢，后续调用会快
print(expensive_computation(5))  # 慢
print(expensive_computation(5))  # 快（从缓存获取）

# 缓存统计
print(expensive_computation.cache_info())